package testes.usuario;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowFocusListener;
import java.awt.event.WindowListener;

import javax.swing.JOptionPane;

import modelo.Fachada;
import modelo.usuario.Usuario;

public class CrudUsuarioControle implements ActionListener {
	TesteInserirUsuario inserir;
	TesteListarUsuario listar;
	public CrudUsuarioControle(TesteInserirUsuario inserir) {
		this.inserir = inserir;
	}

	public CrudUsuarioControle(TesteListarUsuario listar) {
		this.listar = listar;
	}
	
	public CrudUsuarioControle(TesteInserirUsuario inserir, TesteListarUsuario listar) {
		this.inserir = inserir;
		this.listar = listar;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		if(inserir != null) {
			if(e.getSource() == inserir.btnInsert) {
				Usuario usuario = new Usuario();
				usuario.setNomeUsuario(inserir.textField.getText());
				usuario.setSenha(new String(inserir.passwordField.getPassword()));
				Fachada.insertUsuario(usuario);
			} else if(e.getSource() == inserir.btnNewButton_1) {
				inserir.dispose();
				new TesteListarUsuario(Fachada.getListAllUsuario());
			} else if(e.getSource() == inserir.btnUpdate) {
				Usuario usuario = Fachada.getByIdUsuario(inserir.usuario.getId());
				usuario.setNomeUsuario(inserir.textField.getText());
				usuario.setSenha(new String(inserir.passwordField.getPassword()));
							
				Fachada.updateUsuario(usuario);
				listar.model.limpar();
				listar.model.addListaDeUsuarios(Fachada.getListAllUsuario());
				inserir.dispose();
			} 
		} else if (listar != null)
		if(e.getSource() == listar.btnNewButton) {
			
			new TesteInserirUsuario(listar.model.getUsuario(listar.selected), listar);
			
		} else if(e.getSource() == listar.btnDeletar) {
			Fachada.deleteUsuario(listar.model.getUsuario(listar.selected).getId());
			listar.model.limpar();
			listar.model.addListaDeUsuarios(Fachada.getListAllUsuario());
		} else if(e.getSource() == listar.btnAdicionar) {
			listar.dispose();
			new TesteInserirUsuario();
		} else if(e.getSource() == listar.btnOrdenarPorNome) {
			listar.model.limpar();
			listar.model.addListaDeUsuarios(Fachada.getListUsuario("order by nomeUsuario asc"));
		}
	}
	
}


